package com.ponhu.ea2.stockcenter.service.bms;

import com.ponhu.ea2.stockcenter.dto.GWallWarehouseDto;
import com.ponhu.ea2.stockcenter.dto.WMSEventInfoDTO;
import com.ponhu.ea2.stockcenter.vo.RealityLevelStockInfoVO;
import com.ponhu.ea2.stockcenter.vo.ReturnResponseBean;
import com.ponhu.ea2.wmscenter.model.bms.dto.PhWarehouseDto;

import java.util.List;

/**
 * 库存中心对接任务中心WMS接口
 */
public interface StockForWMSService {

    /**
     * 根号业务单号(链路号)关闭任务链路
     *
     * @param docNo 业务单号(链路号)
     * @return
     */
    ReturnResponseBean<Boolean> updTraceDone(String docNo);

    /**
     * 根据货品编码查询货品仓库库存信息
     *
     * @param inventoryCodeList 货品编码列表
     * @return
     */
    ReturnResponseBean<List<RealityLevelStockInfoVO>> getRealityStockInfo(List<String> inventoryCodeList);

    /**
     * 对接WMS系统，事件处理接口
     *
     * @param stockRequestToken 请求库存中心token
     * @param eventInfoDTO      需要处理的事件信息DTO
     * @return
     */
    ReturnResponseBean receiveWMSEventHandler(String stockRequestToken, WMSEventInfoDTO eventInfoDTO);

    List<String> getAllStockInventoryReal(int size);

    /**
     * 保存或更新巨沃仓库数据
     * @param GWallWarehouseDto 巨沃仓库数据
     * @param updateBy 操作人
     * @return
     */
    ReturnResponseBean<Boolean> saveOrUpdateWarehouseInfo(List<GWallWarehouseDto> warehouseDtoList, String updateBy);
}
